/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

云流水线
云流水线API

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#ifndef PipelineClient_h
#define PipelineClient_h


#import <JDCloudOCSDKCore/JDCloudOCSDKCore.h>
#import <JDCloudOCSDKPipeline/PipelineApiModel.h>

@interface PipelineClient : NSObject<JDCloudClient>{
    @private
    NSString* _userAgent;
    NSString* _serviceName;
    NSString* _version;
    }

    @property (strong,readonly,nonatomic) NSString* userAgent;

    @property (strong,readonly,nonatomic) NSString* serviceName;

    @property (strong,readonly,nonatomic) NSString* version;

    @property (strong,nonatomic) NSString* contentType;

    @property (strong,nonatomic) Credential* credential;

    @property (strong,nonatomic) SDKEnvironment* sdkEnvironment;

    @property (strong,nonatomic) NSMutableDictionary* customHeader;

    @property  (strong,nonatomic) NSString* httpRequestProtocol;

    -(void) addCustomerHeaderWithKey:(NSString*) key
    value:(NSString*) value;

    -(id)initWithGlobalConfig;

    -(id)initWithCredential:(Credential*)credential
    sdkEnvironment:(SDKEnvironment*)sdkEnvironment;
    -(id)initWithCredential:(Credential*)credential;
    /**
    getPipelines sync request
    @param getPipelinesRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getPipelinesResponse` the request response data model
    */
    -(NSDictionary*) getPipelinesSyncWithRequest:(PipelineGetPipelinesRequest*) getPipelinesRequest;

    -(void)getPipelinesAsyncWithRequest:(PipelineGetPipelinesRequest*) getPipelinesRequest
    completionHandler:(void(^)(int statusCode,PipelineGetPipelinesResponse* _Nullable getPipelinesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    startPipeline sync request
    @param startPipelineRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `startPipelineResponse` the request response data model
    */
    -(NSDictionary*) startPipelineSyncWithRequest:(PipelineStartPipelineRequest*) startPipelineRequest;

    -(void)startPipelineAsyncWithRequest:(PipelineStartPipelineRequest*) startPipelineRequest
    completionHandler:(void(^)(int statusCode,PipelineStartPipelineResponse* _Nullable startPipelineResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    createPipeline sync request
    @param createPipelineRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `createPipelineResponse` the request response data model
    */
    -(NSDictionary*) createPipelineSyncWithRequest:(PipelineCreatePipelineRequest*) createPipelineRequest;

    -(void)createPipelineAsyncWithRequest:(PipelineCreatePipelineRequest*) createPipelineRequest
    completionHandler:(void(^)(int statusCode,PipelineCreatePipelineResponse* _Nullable createPipelineResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    updatePipeline sync request
    @param updatePipelineRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `updatePipelineResponse` the request response data model
    */
    -(NSDictionary*) updatePipelineSyncWithRequest:(PipelineUpdatePipelineRequest*) updatePipelineRequest;

    -(void)updatePipelineAsyncWithRequest:(PipelineUpdatePipelineRequest*) updatePipelineRequest
    completionHandler:(void(^)(int statusCode,PipelineUpdatePipelineResponse* _Nullable updatePipelineResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    readFile sync request
    @param readFileRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `readFileResponse` the request response data model
    */
    -(NSDictionary*) readFileSyncWithRequest:(PipelineReadFileRequest*) readFileRequest;

    -(void)readFileAsyncWithRequest:(PipelineReadFileRequest*) readFileRequest
    completionHandler:(void(^)(int statusCode,PipelineReadFileResponse* _Nullable readFileResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    getPipeline sync request
    @param getPipelineRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getPipelineResponse` the request response data model
    */
    -(NSDictionary*) getPipelineSyncWithRequest:(PipelineGetPipelineRequest*) getPipelineRequest;

    -(void)getPipelineAsyncWithRequest:(PipelineGetPipelineRequest*) getPipelineRequest
    completionHandler:(void(^)(int statusCode,PipelineGetPipelineResponse* _Nullable getPipelineResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    getLimits sync request
    @param getLimitsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getLimitsResponse` the request response data model
    */
    -(NSDictionary*) getLimitsSyncWithRequest:(PipelineGetLimitsRequest*) getLimitsRequest;

    -(void)getLimitsAsyncWithRequest:(PipelineGetLimitsRequest*) getLimitsRequest
    completionHandler:(void(^)(int statusCode,PipelineGetLimitsResponse* _Nullable getLimitsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    deletePipeline sync request
    @param deletePipelineRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `deletePipelineResponse` the request response data model
    */
    -(NSDictionary*) deletePipelineSyncWithRequest:(PipelineDeletePipelineRequest*) deletePipelineRequest;

    -(void)deletePipelineAsyncWithRequest:(PipelineDeletePipelineRequest*) deletePipelineRequest
    completionHandler:(void(^)(int statusCode,PipelineDeletePipelineResponse* _Nullable deletePipelineResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    getPipelineInstances sync request
    @param getPipelineInstancesRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getPipelineInstancesResponse` the request response data model
    */
    -(NSDictionary*) getPipelineInstancesSyncWithRequest:(PipelineGetPipelineInstancesRequest*) getPipelineInstancesRequest;

    -(void)getPipelineInstancesAsyncWithRequest:(PipelineGetPipelineInstancesRequest*) getPipelineInstancesRequest
    completionHandler:(void(^)(int statusCode,PipelineGetPipelineInstancesResponse* _Nullable getPipelineInstancesResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    manualAction sync request
    @param manualActionRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `manualActionResponse` the request response data model
    */
    -(NSDictionary*) manualActionSyncWithRequest:(PipelineManualActionRequest*) manualActionRequest;

    -(void)manualActionAsyncWithRequest:(PipelineManualActionRequest*) manualActionRequest
    completionHandler:(void(^)(int statusCode,PipelineManualActionResponse* _Nullable manualActionResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    getPipelineInstance sync request
    @param getPipelineInstanceRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getPipelineInstanceResponse` the request response data model
    */
    -(NSDictionary*) getPipelineInstanceSyncWithRequest:(PipelineGetPipelineInstanceRequest*) getPipelineInstanceRequest;

    -(void)getPipelineInstanceAsyncWithRequest:(PipelineGetPipelineInstanceRequest*) getPipelineInstanceRequest
    completionHandler:(void(^)(int statusCode,PipelineGetPipelineInstanceResponse* _Nullable getPipelineInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    stopPipelineInstance sync request
    @param stopPipelineInstanceRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `stopPipelineInstanceResponse` the request response data model
    */
    -(NSDictionary*) stopPipelineInstanceSyncWithRequest:(PipelineStopPipelineInstanceRequest*) stopPipelineInstanceRequest;

    -(void)stopPipelineInstanceAsyncWithRequest:(PipelineStopPipelineInstanceRequest*) stopPipelineInstanceRequest
    completionHandler:(void(^)(int statusCode,PipelineStopPipelineInstanceResponse* _Nullable stopPipelineInstanceResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    getSourceProviders sync request
    @param getSourceProvidersRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getSourceProvidersResponse` the request response data model
    */
    -(NSDictionary*) getSourceProvidersSyncWithRequest:(PipelineGetSourceProvidersRequest*) getSourceProvidersRequest;

    -(void)getSourceProvidersAsyncWithRequest:(PipelineGetSourceProvidersRequest*) getSourceProvidersRequest
    completionHandler:(void(^)(int statusCode,PipelineGetSourceProvidersResponse* _Nullable getSourceProvidersResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    getOperationProviders sync request
    @param getOperationProvidersRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getOperationProvidersResponse` the request response data model
    */
    -(NSDictionary*) getOperationProvidersSyncWithRequest:(PipelineGetOperationProvidersRequest*) getOperationProvidersRequest;

    -(void)getOperationProvidersAsyncWithRequest:(PipelineGetOperationProvidersRequest*) getOperationProvidersRequest
    completionHandler:(void(^)(int statusCode,PipelineGetOperationProvidersResponse* _Nullable getOperationProvidersResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    getPipelineInstancesByUuids sync request
    @param getPipelineInstancesByUuidsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getPipelineInstancesByUuidsResponse` the request response data model
    */
    -(NSDictionary*) getPipelineInstancesByUuidsSyncWithRequest:(PipelineGetPipelineInstancesByUuidsRequest*) getPipelineInstancesByUuidsRequest;

    -(void)getPipelineInstancesByUuidsAsyncWithRequest:(PipelineGetPipelineInstancesByUuidsRequest*) getPipelineInstancesByUuidsRequest
    completionHandler:(void(^)(int statusCode,PipelineGetPipelineInstancesByUuidsResponse* _Nullable getPipelineInstancesByUuidsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;
    /**
    getRegions sync request
    @param getRegionsRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
            `getRegionsResponse` the request response data model
    */
    -(NSDictionary*) getRegionsSyncWithRequest:(PipelineGetRegionsRequest*) getRegionsRequest;

    -(void)getRegionsAsyncWithRequest:(PipelineGetRegionsRequest*) getRegionsRequest
    completionHandler:(void(^)(int statusCode,PipelineGetRegionsResponse* _Nullable getRegionsResponse, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;

    /**
    pipeline common sync request
    @param  jdcloudDataRequest request param
    @return key `statusCode` http request status code type is int
            `dataResult` the http request response data  type is NSData
            `requestError` the request error type is NSError
    */
    -(NSDictionary*) pipelineCommonSyncWithRequest:(JDCloudDataRequest*) jdcloudDataRequest
                                           url:(NSString*) url
                                        method:(NSString*) method;

    -(void)pipelineCommonAsyncWithRequest:(JDCloudDataRequest*) jdcloudDataRequest
                                  url:(NSString*) url
                               method:(NSString*) method
                    completionHandler:(void(^)(int statusCode, NSData* _Nullable responseData,NSError * _Nullable error))completionHandler;

    @end


    #endif /* PipelineClient_h */
